using UnityEngine;

public class INT_AnimateOnChatIndex : MonoBehaviour
{
	public INT_Chat TargetChat;

	[Space(7.5f)]
	public Animator TargetAnimator;

	public string StateToPlay;

	public bool PlayStateWhenFinishedChat;

	public string StateToFinish;

	[Space(7.5f)]
	public int ChatTextIndexToPlay;

	[Header("For text that requires the player to interact multiple times")]
	public int AdditionalTextIndexToPlay;

	private bool CurrentActiveChatIsTarget;

	private int PreviousChatTextIndex = -1;

	private int PreviousAdditionalTextIndex = -1;

	private bool AbleToRevert;

	private void Update()
	{
		if ((Object)(object)ChatboxManager.Instance.storedchatboxtext == (Object)(object)TargetChat.Text)
		{
			CurrentActiveChatIsTarget = true;
		}
		else
		{
			CurrentActiveChatIsTarget = false;
			if (AbleToRevert)
			{
				TargetAnimator.Play(StateToFinish);
				AbleToRevert = false;
			}
		}
		if (CurrentActiveChatIsTarget && (ChatboxManager.Instance.CurrentTextIndex != PreviousChatTextIndex || ChatboxManager.Instance.CurrentAdditionalTextIndex != PreviousAdditionalTextIndex))
		{
			OnChatmanagerTextAdvance();
		}
	}

	private void OnChatmanagerTextAdvance()
	{
		if (ChatboxManager.Instance.CurrentTextIndex == ChatTextIndexToPlay && ChatboxManager.Instance.CurrentAdditionalTextIndex == AdditionalTextIndexToPlay)
		{
			TargetAnimator.Play(StateToPlay);
			AbleToRevert = true;
		}
	}
}
